package com.tim.source.common;

import com.tim.source.util.StringUtil;

/**
 * 数据库列信息.
 * 
 * @author Tim.
 * 
 */
public class FieldInfo {
	// 数据库列名
	private String colName;
	// 属性名
	private String propName;
	// 数据库数据类型
	private String dbDataType;
	// 对应java数据类型
	private String dataType;
	// 对应java数据类型完整类名
	private String fullDataType;
	// 数据库对应长度
	private String dbLength;
	// 数据长度
	private int dataLength;
	// 是否为空
	private String isNull;

	/**
	 * 获取数据库列名.
	 * 
	 * @return String 数据库列名.
	 */
	public String getColName() {
		return colName;
	}

	/**
	 * 设置数据库列名.
	 * 
	 * @param String
	 *            数据库列名.
	 */
	public void setColName(String colName) {
		this.colName = colName;
	}

	/**
	 * 获取属性名.
	 * 
	 * @return String 属性名.
	 */
	public String getPropName() {
		return propName;
	}

	/**
	 * 设置属性名.
	 * 
	 * @param String
	 *            属性名.
	 */
	public void setPropName(String propName) {
		this.propName = propName;
	}

	/**
	 * 获取数据库数据类型.
	 * 
	 * @return String 数据库数据类型.
	 */
	public String getDbDataType() {
		return dbDataType;
	}

	/**
	 * 设置数据库数据类型.
	 * 
	 * @param String
	 *            数据库数据类型.
	 */
	public void setDbDataType(String dbDataType) {
		this.dbDataType = dbDataType;
	}

	/**
	 * 获取对应java数据类型.
	 * 
	 * @return String 对应java数据类型.
	 */
	public String getDataType() {
		return dataType;
	}

	/**
	 * 设置对应java数据类型.
	 * 
	 * @param String
	 *            对应java数据类型.
	 */
	public void setDataType(String dataType) {
		this.dataType = dataType;
	}

	/**
	 * 获取对应java数据类型完整类名.
	 * 
	 * @return String 对应java数据类型完整类名.
	 */
	public String getFullDataType() {
		return fullDataType;
	}

	/**
	 * 设置对应java数据类型完整类名.
	 * 
	 * @param String
	 *            对应java数据类型完整类名.
	 */
	public void setFullDataType(String fullDataType) {
		this.fullDataType = fullDataType;
	}

	/**
	 * 获取数据库对应长度.
	 * 
	 * @return String 数据库对应长度.
	 */
	public String getDbLength() {
		return dbLength;
	}

	/**
	 * 设置数据库对应长度.
	 * 
	 * @param String
	 *            数据库对应长度.
	 */
	public void setDbLength(String dbLength) {
		this.dbLength = dbLength;
	}

	/**
	 * 获取数据长度.
	 * 
	 * @return int 数据长度.
	 */
	public int getDataLength() {
		return dataLength;
	}

	/**
	 * 设置数据长度.
	 * 
	 * @param int
	 *            数据长度.
	 */
	public void setDataLength(int dataLength) {
		this.dataLength = dataLength;
	}

	/**
	 * 获取是否为空.
	 * 
	 * @return String 是否为空.
	 */
	public String getIsNull() {
		return isNull;
	}

	/**
	 * 设置是否为空.
	 * 
	 * @param String
	 *            是否为空.
	 */
	public void setIsNull(String isNull) {
		this.isNull = isNull;
	}

	/**
	 * 是否为lang包下类.
	 * 
	 * @return boolean 是否为lang包下类.
	 */
	public boolean isLangPackage() {
		return this.dataType.equals(this.fullDataType);
	}

	/**
	 * 获取属性名对应方法签名.
	 * 
	 * @return String 属性名对应方法签名.
	 */
	public String getMethod() {
		return StringUtil.getClassName(this.propName);
	}
}
